from hdfs import InsecureClient, HdfsError

def updateFile():
    # HDFS配置
    hdfs_url = 'http://hadoop:50070'  # 例如: 'http://localhost:9870'
    hdfs_user = 'root'  # 你的HDFS用户名

    # 创建HDFS客户端
    client = InsecureClient(hdfs_url, user=hdfs_user)

    # 本地文件和目标HDFS路径
    local_file_path = 'data/zufang.txt'  # 本地文件路径
    hdfs_file_path = '/data'  # 目标HDFS路径

    # 检查目录是否存在
    try:
        if not client.status(hdfs_file_path, strict=False):
            # 如果目录不存在，创建目录
            client.makedirs(hdfs_file_path)
            print("目录已创建:", hdfs_file_path)
        else:
            print("目录已存在:", hdfs_file_path)
    except HdfsError as e:
        print("检查目录时发生错误:", e)

    # 检查文件是否存在
    if client.status('/data/zufang.txt', strict=False):
        # 如果文件存在，则删除
        client.delete('/data/zufang.txt')
        print("文件存在，已删除.")
    else:
        print("文件不存在，无需删除.")

    # 上传文件
    client.upload(hdfs_file_path, local_file_path)
    return "爬取的文件上传到HDFS成功"


if __name__ == '__main__':
    updateFile()